import request from '../../utils/request';
import config from '../../config';
Page({
    data: {
        config: {},
        userInfo: {
            phoneNumber: '', // 初始为空，等待授权
            wechatAccount: 'zzw******good'
        },
        showWechatModal: false, // 控制修改微信账号弹窗的显示
        newWechatAccount: '' // 存储用户输入的新微信账号
    },
    onLoad: function (options) {
        // 页面加载时可以做的操作
    },
    onShow: function () {
        // 页面显示/切入前台时更新数据
        this.setData({
            userInfo: wx.getStorageSync('userInfo')
        });
        request({
            url: 'api/login/getConfig',
        }).then(res => {
            if (res.data) {
                wx.setStorageSync('config', res.data);
                this.setData({
                    config: res.data
                });
            }
        });
    },
    handleEditUserInfo: function () {
        wx.navigateTo({
            url: '/pages/edit-user-info/edit-user-info'
        });
    },
    onGetPhoneNumber(e) {
        if (e.detail.errMsg === 'getPhoneNumber:ok') {
            // 获取到加密数据
            const encryptedData = e.detail.encryptedData;
            const iv = e.detail.iv;
            const code = e.detail.code;

            // 调用后端接口解密手机号
            request({
                url: 'api/login/getPhoneNumber',
                method: 'get',
                data: {
                    encryptedData,
                    iv,
                    mobileCode: code
                }
            }).then(res => {
                if (res.code === 200) {
                    this.updateUserInfo({
                        phone: res.data.phone
                    })

                    wx.showToast({
                        title: '手机号绑定成功',
                        icon: 'success'
                    });
                } else {
                    wx.showToast({
                        title: res.message || '绑定失败',
                        icon: 'none'
                    });
                }
            }).catch(err => {
                console.error('解密手机号失败:', err);
                wx.showToast({
                    title: '绑定失败，请重试',
                    icon: 'none'
                });
            });
        } else {
            wx.showToast({
                title: '用户拒绝授权',
                icon: 'none'
            });
        }
    },
    handleAuthorizePhone: function () {
        // 实际项目中，这里会调用微信API获取手机号
        // 例如：使用 <button open-type="getPhoneNumber" bindgetphonenumber="onGetPhoneNumber">
        console.log('用户点击了微信授权手机号');
        wx.showToast({
            title: '授权功能开发中',
            icon: 'none'
        });
        // 假设授权成功，并获取到了手机号
        // this.setData({
        //   'userInfo.phoneNumber': '138****1234' // 模拟设置手机号
        // });
    },
    handleChangeWechatAccount: function () {
        console.log('用户点击了修改微信账户');
        this.setData({
            showWechatModal: true,
            newWechatAccount: this.data.userInfo.wxAccount || '' // 初始化输入框内容为当前微信账号
        });
    },
    handleWechatModalConfirm: function () {
        // 调用接口保存微信账号
        // 你需要替换成你的实际接口地址和参数
        const newAccount = this.data.newWechatAccount;
        if (!newAccount.trim()) {
            wx.showToast({
                title: '微信账号不能为空',
                icon: 'none'
            });
            return;
        }
        this.updateUserInfo({
            wxAccount: newAccount,
        })

    },
    updateUserInfo: function (data) {
        request({
            url: 'api/login/updateUser',
            method: 'POST',
            data
        }).then(res => {
            console.log(res);
            if (res.code == 200) {
                request({
                    url: 'api/login/getLoginInfo',
                    method: 'POST',
                }).then(res => {
                    if (res.data) {
                        wx.setStorageSync('userInfo', res.data);
                    }
                    wx.showToast({
                        title: '保存成功',
                        icon: 'success'
                    });
                    this.setData({
                        showWechatModal: false,
                        userInfo: res.data
                    });
                });
            }
        }).catch(err => {
            console.log(err);
        })
    },
    handleWechatModalCancel: function () {
        this.setData({
            showWechatModal: false
        });
    },

    handleWechatInputChange: function (e) {
        this.setData({
            newWechatAccount: e.detail.value
        });
    },

    handleUpdateQrCode: function () {
        console.log('用户点击了更新收款码');
        const that = this;
        wx.chooseMedia({
            count: 1, // 最多可选择一张图片
            mediaType: ['image'], // 只能选择图片
            sourceType: ['album', 'camera'], // 可以从相册选图，也可以使用相机
            success(res) {
                const tempFilePath = res.tempFiles[0].tempFilePath;
                console.log('选择的图片临时路径：', tempFilePath);
                wx.uploadFile({
                    url: config.BASE_URL + 'api/login/upload',
                    fileType: 'image',
                    filePath: tempFilePath,
                    name: 'file',
                    header: {
                        'Authorization': 'tf: ' + wx.getStorageSync('token')
                    },
                    success: (res) => {
                        let data = JSON.parse(res.data);
                        if (data.code == 200) {
                            let url = data.data.url;
                            that.updateUserInfo({
                                paymentCode: url
                            })
                        } else {
                            wx.showToast({
                                title: data.message,
                                icon: 'none'
                            });
                        }
                    },
                    fail: (error) => {
                        wx.showToast({
                            title: '上传失败',
                            icon: 'none'
                        });
                    }
                })

            },
            fail(err) {
                console.log('选择图片失败', err);
                if (err.errMsg !== "chooseMedia:fail cancel") {
                    wx.showToast({
                        title: '选择图片失败',
                        icon: 'none'
                    });
                }
            }
        });
    }
});